package com.zhiche.lisa.tms.dao.mapper;


import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zhiche.lisa.tms.dao.model.ShipOrderItem;
import com.zhiche.lisa.tms.dao.model.ShipTask;
import com.zhiche.lisa.tms.dao.model.bo.ShipTaskBo;
import com.zhiche.lisa.tms.dao.model.bo.ShipTaskCountBo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 运输任务 Mapper 接口
 * </p>
 *
 * @author qichao
 * @since 2018-06-18
 */
public interface ShipTaskMapper extends BaseMapper<ShipTask> {

    /**
     * 根据装车单ID得到运输任务
     */
    List<ShipTaskBo> getShipTaskByShipId(@Param("shipmentId") Long shipmentId);


    /**
     * 司机根据装车单ID得到运输任务
     */
    List<ShipTaskBo> getShipTaskByShipIdNoTenant(@Param("shipmentId") Long shipmentId);

    /**
     * 根据装车单ID得到运输任务概况
     */
    List<ShipTaskCountBo> getShipTaskCountByShipIdNoTenant(@Param("shipmentCode") String shipmentCode);

    /**
     * 根据租户id查询所有承运商的运单
     */
    List<ShipTaskCountBo> getlspWaybill(@Param("tenantId") Long tenantId);

    /**
     * 根据code查询司机的运输任务
     */
    ShipTask getDriverTaskNotenant(@Param("code") String code);

    List<ShipTask> selectListNoTenant(@Param("ew") EntityWrapper<ShipTask> taskEW);

    /**
     * 获取查询仓库运输任务条件
     * @param code 任务code
     * @return List<Map<String, Object>>
     */
    List<Map<String, Object>> getWmsOrderItemnoCondition(@Param("code") String code);

    /**
     * 根据taskId得到订单详情列表
     * @param taskId
     * @return
     */
    List<ShipOrderItem> getShipOrderItemByTaskId(@Param("taskId") String taskId);

    Date getDevilerDate(@Param("orderRealeseGid")String orderRealeseGid);
}
